Solid state disks (SSD) have been gaining ground for replacing hard disk drives (HDDs) as the storage medium of choice for both consumer and enterprise applications. Instead of the moving parts found in HDDs, SSDs use a Flash memory (e.g., NAND, NOR) or a dynamic random access memory (DRAM) to store data. Flash SSDs are popular SSDs because of their speed, reliability, and availability. For example, since Flash is a nonvolatile memory, data can be retained even when power failure occurs.
However, one of Flash SSD's issues is “wear out”. Wear out refers to the fact that an SSD can only support a limited number of writes (and erasures) before cells fail. This shortcoming can be magnified by patterns of writing data that concentrate writes on a small number of cells in a given device.
In addition, because Flash is a semiconductor-based technology, it can suffer from manufacturing defects and transient errors. Transient errors include errors due to alpha particle strikes and neutron particle strikes, as well as “retention errors” where charge slowly leaks out of the Flash cell causing it to change value. Error correction codes (ECCs) are usually employed to inhibit Flash from degrading and adversely affecting SSD reliability due to manufacturing defects and transient errors. However, as the Flash wears out, ECC becomes more difficult to perform and a reduction in performance may ensue.
Accordingly, extending the operating life of Flash memory is an area of ongoing research in order for SSDs to continue to make inroads in replacing HDDs.